In the creation of a program, source code is developed by a programmer or group of programmers. The source code is then compiled in order to create an executable. To determine modifications to be made to the source code, the developer(s) typically execute the executable under test conditions and identify sections of the program for modification. The developers then identify the portion of source code responsible for the identified sections and modify those portions of source code.
In order to retest, developer(s) typically recompile all portions of the source code and repeat testing of the executable. The process of modifying and recompiling source code and testing the executable may be reiterated many times. Recompilation is time and resource intensive. Therefore, some developers may want a compiler to reduce the amount of source code to recompile. To do so, the system may save compiled portions of the source code. If a modification is made to the source code, the system knows all portions related to the modified portion of source code and recompiles all of the related portions. For example, a project including a modified first class file may define all other class files related to the modified first class file. Thus, all class files in the project are recompiled no matter what modification is made to the first class file, including simply adding a comment to the first class file.
One problem is that many portions of source code are unnecessarily identified for recompilation.